


/**************************************************START OF FILE*****************************************************/

#ifndef HH__XBSP_GPIO__HH
#define HH__XBSP_GPIO__HH



/*------------------------------------------------------------------------------------------------------------------
Includes
*/
#include "stm32l4xx_hal.h"


/*------------------------------------------------------------------------------------------------------------------
Macros
*/ 
#define NUM_KEY0     (0x00000001u)  
#define NUM_KEY1     (0x00000002u) 
#define NUM_KEY2     (0x00000004u)  
#define NUM_KEY3     (0x00000008u)  

#define LED_R(n)    (n?HAL_GPIO_WritePin(GPIOE,GPIO_PIN_7,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOE,GPIO_PIN_7,GPIO_PIN_RESET))
#define LED_G(n)    (n?HAL_GPIO_WritePin(GPIOE,GPIO_PIN_8,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOE,GPIO_PIN_8,GPIO_PIN_RESET))
#define LED_B(n)    (n?HAL_GPIO_WritePin(GPIOE,GPIO_PIN_9,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOE,GPIO_PIN_9,GPIO_PIN_RESET))

#define LED_R_TOGGLE()     HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_7)
#define LED_G_TOGGLE()     HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_8)
#define LED_B_TOGGLE()     HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_9)


#define	LCD_PWR(n)  (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET))
#define	LCD_RST(n)  (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET))
#define	LCD_DC(n)   (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_RESET))
#define	LCD_CS(n)   (n?HAL_GPIO_WritePin(GPIOD,GPIO_PIN_7,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOD,GPIO_PIN_7,GPIO_PIN_RESET))


#define BEEP_TOGGLE()	   HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_2)




#define READ_KEY0()        HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_10)
#define READ_KEY1()        HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_9)
#define READ_KEY2()        HAL_GPIO_ReadPin(GPIOD,GPIO_PIN_8)
#define READ_KEY3()        HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_13)

/*------------------------------------------------------------------------------------------------------------------
Functions
*/
extern void xBSP_GPIO_Init(void);
extern uint32_t xBSP_IO_Input_GetData(void);


#endif
/****************************************************END OF FILE*****************************************************/
